home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / swags_z.zip / SCREEN.SWG / 0049_Clearing the Screen.pas < prev    next >
Pascal/Delphi Source File  |  1994-01-27  |  2KB  |  43 lines

  1. {
  2. > If you're not using the CRT unit, that should write through the ansi
  3. > driver just fine.  I don't know about the codes you used, but they
  4. > won't be written directly to video memory.  If you're using the CRT
  5. > unit then he's right, it won't work without a slight modification.
  6.  >My whole point behind this was that you DON'T need CRT to
  7. > clear the screen like this.  You only need ANSI.SYS loaded.
  8.  
  9. you don't even need ANSI.SYS if you 'cheat' like borland did -=B-)
  10. }
  11.  
  12. procedure clrscr; assembler;
  13. Asm
  14.   MOV    AX, 0600h    {BIOS Scroll Up}   { <<---- !!!!!! }
  15.   MOV    BH, 07h      {Mono Attribute}
  16.   XOR    CX, CX       {top left = 0,0}
  17.   MOV    DX, 184fh    {bottom right = 24,79}
  18.   INT    10h          {BIOS interrupt}   { do the clear }
  19.   MOV    AH, 02h      {BIOS Set Cursor Position}  { now let's }
  20.   XOR    DX, DX       {DH = Row = 00, DL = Col = 00}
  21.   XOR    BH, BH       {Do it on Page 0}    { move the cursor to }
  22.   INT    10h          {BIOS Interrupt}     { the top left corner }
  23. End;
  24.  
  25. { yeah, it's hardcoded for 25 lines and 80 columns }
  26.  
  27. uses
  28.   DOS;
  29. procedure clrscr;
  30. var
  31.   regs : registers;
  32. Begin
  33.   regs.AX := $0600;   {BIOS Scroll Up}   { <<---- !!!!!! }
  34.   regs.BH := $07;     {Mono Attribute}
  35.   regs.CX := $0000;   {top left = 0,0}
  36.   regs.DX := $184F;   {bottom right = 24,79}
  37.   INTR($10, regs);    {BIOS interrupt}   { do the clear }
  38.   regs.AH := $02;     {BIOS Set Cursor Position}  { now let's }
  39.   regs.DX := $0000;   {DH = Row = 00, DL = Col = 00}
  40.   regs.BH := $0000;   {Do it on Page 0}    { move the cursor to }
  41.   INTR($10, regs);    {BIOS Interrupt}     { the top left corner } End;
  42. end;
  43.